home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / emulator / Tb109 / README.TXT < prev    next >
Encoding:
Text File  |  1999-11-14  |  24.3 KB  |  515 lines

  1.                             TOSBOX documentation
  2.                            An Atari ST emulator
  3.                                version 1.09
  4.                        Release date November 14, 1999
  5.  
  6. Copyright (c) 1997-1999 by:
  7.  
  8. Mark Slagell
  9. 3716 Ross Road
  10. Ames IA 50014
  11. USA
  12.  
  13.  
  14.   ------------------------------------------------------------------------
  15. Contents
  16.  
  17.      Introduction
  18.      Requirements
  19.      Summary of changes in this version
  20.      Shareware and distribution rules
  21.      Starting TOSBOX
  22.      Recommendations
  23.      Technical notes
  24.      The Four Disclaimers
  25.      Acknowledgments
  26.  
  27.   ------------------------------------------------------------------------
  28. ** What it is **
  29. TOSBOX provides an environment for running TOS and GEM applications under
  30. DOS or Windows. It uses an operating system image which you can create on
  31. your actual Atari machine, and operates with most of the PC's peripherals.
  32.  
  33. The design of TOSBOX is unique in working from the system down rather than
  34. from the hardware up. The goal was not to make a PC behave as exactly as
  35. possible like an ST, but to run Atari applications as smoothly as possible
  36. on a PC. Whenever possible, system calls were redirected and translated;
  37. then, only in cases where that failed to be reliable, the behavior of the
  38. actual hardware behavior was emulated. The resulting product is able to run
  39. a considerable variety of popular software. I am interested to hear your
  40. results on specific programs so I can make note of conflicts in future
  41. documentation and continue to improve compatibility.
  42.  
  43. I wish to emphasize that TOSBOX is not a complete hardware-level emulation
  44. of an Atari ST. As such, it is not intended to run games and graphics
  45. demos. For that I suggest using PaCifiST, by Frederic Gidouin.
  46.   ------------------------------------------------------------------------
  47.  
  48. ** Requirements  **
  49. You need ordinary VGA graphics (though an SVGA card that complies with VESA
  50. 1.2 or higher is recommended), a mouse and mouse driver, at least 4 megs of
  51. memory, and a hard drive. Because TOSBOX runs in 32-bit protected mode, you
  52. also need a '386 or newer processor. Finally, you need a TOS image file
  53. derived from your Atari computer. ROMIMAGE.TOS, included in this archive,
  54. will make that for you.
  55.  
  56. Supported TOS versions include 1.00, 1.04, 2.05 and 2.06. According to user
  57. feedback, TOS 1.02, 1.06, 1.62 and an enhanced 2.06 called "SUPERTOS" are
  58. all supposed to work. "KAOSTOS" is apparently too heavily modified for
  59. TOSBOX to recognize it.
  60.  
  61. You may find that you need to install a separate DOS-mode VESA driver for
  62. your video card in order to use some graphic modes.  A suitable driver
  63. should have been included on the disk or CD that came with your video
  64. hardware.
  65.   ------------------------------------------------------------------------
  66.  
  67. ** Summary of changes in this version **
  68.  
  69.    * A configuration program has been provided, making it no longer
  70.      necessary to hand-edit the initialization file.
  71.    * Much of the information from this documentation file has been moved
  72.      into the config program.
  73.    * Mouse response is now significantly smoother.
  74.    * The key combination [Control]+[keypad Enter] is now properly
  75.      recognized.
  76.    * The "nag" features have been removed, so registration is entirely
  77.      under the honor system.
  78.  
  79.   ------------------------------------------------------------------------
  80. ** Shareware and distribution rules **
  81. TOSBOX is inexpensive by PC shareware standards, priced at $15 (US).
  82. Payments and other correspondence may be sent to the address at the top of
  83. this document.  I can be contacted via email at slagell@cs.iastate.edu.
  84.  
  85. Permission is hereby granted to copy and distribute TOSBOX through
  86. non-commercial channels, as long as the original ZIPped archive is provided
  87. without modification.
  88.  
  89.   ------------------------------------------------------------------------
  90. ** Starting TOSBOX **
  91.  
  92.   1. If you do not already have a TOS image file, create one using the
  93.      supplied program (ROMIMAGE.TOS) on your Atari computer.
  94.   2. Copy the TOS image file to the same directory into which you unzipped
  95.      TOSBOX.
  96.   3. Run CONFIG.EXE, which lets you make configuration choices and test
  97.      them in the emulator.
  98.   4. When everything is configured to your satisfaction, you can bypass the
  99.      configuration step and run TOSBOX directly as TB.EXE.
  100.  
  101. Notes:
  102.  
  103.    * There are several ways to exit the emulator.  Use the provided desk
  104.      accessory, or press Control+Break, or press Control+[Left Shift]+Q.
  105.    * It is possible to maintain more than one configuration.  The default
  106.      configuration is stored in the file TB.INI.  To use a different
  107.      configuration, supply its filename as a command line argument to
  108.      CONFIG (or to TB).
  109.  
  110.   ------------------------------------------------------------------------
  111. ** Recommendations **
  112. The higher the screen mode you select, the more horsepower your machine
  113. needs. Not only is the VDI working harder, but the emulator has to throw
  114. around a lot more data between ST memory space and the PC's video memory. A
  115. 486/66 is enough for the ST-compatible modes, but you need something
  116. considerably faster if you want to run in 1024x768x16 without spending a
  117. lot of time waiting around for redraws.  You might find you need to use TOS
  118. 2.05 or 2.06 to make the 800x600 and higher modes run properly.
  119.  
  120. As with an ST, a graphics accelerator is in some cases desirable. The most
  121. popular accelerators (NVDI, Warp 9, Turbo ST) are reported to be compatible
  122. with TOSBOX, though Turbo ST is only effective in the ST video modes. NVDI
  123. users report varying success; generally speaking, later versions of NVDI
  124. are more compatible with the custom video modes, and 16-color modes tend to
  125. be more stable than 4-color modes.
  126.  
  127. On the other hand, PCs have become so fast that in many cases now, the
  128. graphics speedup provided by NVDI and others may be outweighed by the
  129. improved overall compatibility that is achieved without them.
  130.  
  131. Use an alternate desktop, especially if you use the custom screen modes. If
  132. you don't have Neodesk, get Thing, Teradesk, or Ease.
  133.  
  134. Make SERIALFX or HSMODEM a permanent fixture in your AUTO folder. This is
  135. important because the serial interrupt code built into TOS has always had
  136. buggy flow control, and most PCs have relatively fast modems.
  137.  
  138.   ------------------------------------------------------------------------
  139.  
  140.  
  141.  
  142.  
  143.                               TECHNICAL NOTES
  144.  
  145. Contents
  146.  
  147.      Video
  148.      CPU
  149.      Blitter
  150.      Memory
  151.      GEMDOS
  152.      Floppy support
  153.      Desktop
  154.      Keyboard
  155.      Mouse
  156.      Serial port
  157.      Parallel port
  158.      Sound
  159.      Missing features
  160.      Detecting the presence of TOSBOX
  161.  
  162.   ------------------------------------------------------------------------
  163. ** Video **
  164. Standard ST modes are provided for the sake of compatibility, and are
  165. implemented as standard VGA video on your PC.  640x400 and up requires TOS
  166. 1.04 or higher (2.06 recommended), and 800x600 and higher require
  167. compliance with VESA 1.2 or higher.  If you request a mode that for some
  168. reason cannot work with your PC or your TOS version, a lower-resolution
  169. mode with the same number of colors will automatically be selected.
  170.  
  171. It is important to recognize that even if your video hardware is
  172. VESA-compatible, you may have to install a DOS-mode driver before the VESA
  173. modes can be used.  If you generally only use Windows programs, you may
  174. have never had a reason to think about this before.  So if the custom video
  175. modes don't work (or if you always get a lower-resolution mode than you
  176. asked for), consult the documentation for your video hardware, or browse
  177. the directories of the disk or CD that came with it, or see if the
  178. manufacturer has a webpage from which a DOS driver can be downloaded; most
  179. manufacturers do.
  180.  
  181. Vertical blanking is implemented, but horizontal blanking is not. The
  182. display is refreshed at a variable rate, more frequently when keyboard or
  183. mouse activity has been recently detected, less frequently otherwise to
  184. optimize CPU emulation. (This feature can be disabled, giving constant
  185. screen refreshes with a slight speed penalty.)  Refresh rates are
  186. automatically adjusted somewhat according to screen size.
  187.  
  188.   ------------------------------------------------------------------------
  189. ** Blitter **
  190. Blitter emulation is most useful in situations where there is no graphics
  191. accelerator in place. On average it is faster to use the blitter than not,
  192. but it is still not quite as fast as the real thing in hardware; it cannot,
  193. on its own, compete with a good software accelerator like NVDI.
  194.  
  195. Known problems with the current blitter emulation:
  196.  
  197.   1. HOG mode is always used, which helps speed, but sometimes interferes
  198.      with mouse and keyboard response because the ST interrupts are locked
  199.      out during a large blit.
  200.  
  201.   1. When the blitter is fed a bad address (source or destination), it can
  202.      crash not just the virtual ST but the emulator itself.
  203.  
  204. If you don't want to use the blitter, I recommend disabling it in the
  205. TOSBOX configuration because this is more reliable than turning it off from
  206. the desktop.  The speed of a modern PC is such that you probably don't need
  207. the blitter anyway.
  208.  
  209.   ------------------------------------------------------------------------
  210. ** CPU **
  211. Almost all opcodes are emulated. A few instructions that I have not seen
  212. used in any ST programs will produce an "undefined opcode" message if they
  213. are encountered; please notify me if this happens.
  214.  
  215. Most bus errors and privilege violations are detected, but odd address
  216. errors are not. Other known quirks:
  217.  
  218.    * 1. The trace bit has no effect except when it is popped off the stack
  219.      via RTE.
  220.    * 2. The stack offset is correct after bus errors so that programs that
  221.      trigger them intentionally (including the ST desktop itself) can
  222.      generally recover properly, but don't rely on any specific information
  223.      on the stack.
  224.    * 3. The $003f opcode, which is illegal on a real 68000, is reserved for
  225.      certain internal functions.
  226.  
  227.   ------------------------------------------------------------------------
  228. ** Memory **
  229. It is possible to have up to 14 megs of ST memory.
  230.  
  231. Depending on your DPMI host, TOSBOX might use virtual memory if there is
  232. not enough RAM to satisfy the request. This feature is a mixed blessing; if
  233. the boot process takes too long, or programs slow to a crawl while the hard
  234. drive keeps spinning, try reducing the memory request. If too much RAM is
  235. requested and your DPMI host doesn't provide virtual memory, a smaller
  236. amount will automatically be allocated.
  237.  
  238.   ------------------------------------------------------------------------
  239. ** GEMDOS **
  240. Disk drive emulation is done entirely at the GEMDOS level. All PC drives
  241. can be used, including CD-ROMs and high density floppies.
  242.  
  243. Swapping of A: and B: on single-floppy systems is handled by the host PC,
  244. which instead of giving you the familiar alert box, displays an "insert
  245. disk and press key" message superimposed over the ST screen. Press alt-end
  246. to clean that off afterwards if necessary. There should be little need for
  247. drive swapping on a modern machine with a hard drive, but some older
  248. applications may insist on doing it anyway. Swapping is disabled if drive
  249. B: is not mapped in your configuration.
  250.  
  251. Mounted directories allow you to protect data from the emulator. For
  252. instance, you may want to hide the root directory of your PC's boot drive
  253. (typically by mounting  C: as <cwd> during configuration) if you're worried
  254. about your five-year-old kid dragging a drive icon to the trash.
  255.  
  256. Filenames that are legal under TOS but cause errors under MS-DOS are
  257. modified in a simple way: all illegal characters are mapped into the
  258. 128-255 range by setting the high bit.
  259.  
  260. Files and folders are manipulated in customary ways. Directories may be
  261. read using Fsfirst/Fsnext, but not from the file allocation tables
  262. themselves. A few low-level disk functions (Floprw, Flopwr, Flopfmt,
  263. Flopvfy, Rwabs) are incompatible or unsafe to use with mounted directories
  264. and therefore just return error codes.
  265.  
  266. I have seen one CPX module that tries to determine drive space using
  267. Getbpb() instead of Dfree(), so Getbpb() is partially supported, not enough
  268. to supply all the correct information, but enough to keep that CPX from
  269. crashing.
  270.  
  271. The redirection functions Fforce() and Fdup() are implemented only with
  272. respect to Fread() and Fwrite().  Redirection has not yet been implemented
  273. for Cconout() and similar functions.
  274.  
  275. The following characteristics of GEMDOS differ from MS-DOS but have been
  276. faithfully emulated:
  277.  
  278.    * Files opened in mode 0 can be written to, if they were not read-only
  279.      to begin with.
  280.    * Filenames are allowed to have an extra extender, but only the first is
  281.      used; FOOBAR.ABC.DEF and FOOBAR.ABC refer to the same file.
  282.    * Wildcards can be used directly when opening files.
  283.  
  284.   ------------------------------------------------------------------------
  285. ** Floppy support **
  286. It is possible to retrieve data from old ST-formatted floppy disks.  It
  287. requires a special mount instruction, which is explained in the config
  288. program.
  289.  
  290. To read an ST floppy, pause emulation, then press the F key (there is an
  291. entry on the monitor screen to indicate this choice).  In the above
  292. example, the contents of the disk in PC drive A: are loaded into what
  293. appears within emulation as a new read-only drive H:,  with the original
  294. directory structure and file time/date stamps intact.  From there the data
  295. can be copied to any other location, including a PC-formatted floppy if
  296. desired.  You will not be able to read copy-protected or corrupted disks,
  297. but you should have no trouble with most nonstandard extended formats
  298. employing extra sectors and tracks.
  299.   ------------------------------------------------------------------------
  300.  
  301. ** Desktop **
  302. Resolution changes are only supported when you start up in one of the
  303. standard ST screen modes. In the custom color modes, trying to switch
  304. resolutions from the desktop will confuse the AES, but you can usually
  305. switch back easily enough.
  306.  
  307. In general, the 4-color modes do not work as well as the 16-color and
  308. 2-color (mono) modes. I am not sure of the reason for this.
  309.  
  310. One unusual -- if not necessarily useful -- feature of TOSBOX is that you
  311. can launch not only Atari programs but DOS programs as well, provided you
  312. inform your desktop program that EXE, COM and BAT are executable filetypes.
  313. This requires hand-editing DESKTOP.INF or NEWDESK.INF if you're using the
  314. built-in Atari desktop. Some work remains to be done on DOS program
  315. launching, because the startup directory is not always correctly determined
  316. and filenames in the command line are not yet translated out of the mounted
  317. directories. It cannot launch Windows programs at all under Windows 3.x,
  318. though it can be done in some circumstances under Windows 95/98.
  319.   ------------------------------------------------------------------------
  320.  
  321. ** Keyboard **
  322. The method used for detecting and reporting keypresses is unique, and seems
  323. to be mercifully free from the glitches and lockups that plague at least
  324. two other emulators. There are two limitations: first, programs wanting to
  325. sense more than one alphanumeric key being held down at a time cannot do
  326. so, but that is a very uncommon practice except in games anyway; second,
  327. the mouse cannot be 'clicked' from the keyboard using alt-insert or
  328. alt-home, though the alt-arrows work.
  329.  
  330. If you configure TOSBOX so that kbrate is enabled, the control panel is
  331. allowed to change the keyboard delay/repeat settings, and TOSBOX attempts
  332. to restore the original values on exit. Since some PCs do not allow the
  333. settings to be read reliably, the keyboard settings are tied to the host
  334. PC's settings by default.
  335.  
  336. Some of the PC special keys are mapped as follows (note that
  337. Lshift-cntrl-end can be redefined according to your preference during
  338. configuration):
  339.     page up              shift - up arrow
  340.     page down            shift - down arrow
  341.     end                  shift - right arrow
  342.     shift - end          shift - left arrow
  343.     F11                  Help
  344.     F12                  Undo
  345.     cntrl - break
  346.     Lshift - cntrl - end {stop the emulator}
  347.     alt - end            {manually refresh screen after a floppy swap}
  348.     home                 {mode dependent - see below}
  349. The IKBD clock is read-only, and implemented at the XBIOS level.
  350.  
  351. With NumLock off, the numeric keypad works as it normally would in DOS.
  352.  
  353. The Home key can work in two different modes. By default, it behaves like
  354. the standard Atari Clr/Home key. Also available is a native PC mode that
  355. makes Home the intuitive counterpart of End: just as End normally maps to
  356. shift+right, Home then maps to shift+left. This only applies when no
  357. modifiers (shift, control, alt) are used. To make the emulated ST see a
  358. normal unshifted Home key while in this mode, press control+shift+home.
  359.  
  360. You can switch between the default and PC home key modes at any time, by
  361. pressing shift+shift+Home. You can also choose during configuration whether
  362. to make PC mode the default when TOSBOX starts.
  363.   ------------------------------------------------------------------------
  364.  
  365. ** International keyboard adjustment **
  366. To improve keyboard behavior on machines set up for languages other than
  367. English, configure TOSBOX to use the "Auto ASCII" option.
  368.   ------------------------------------------------------------------------
  369.  
  370. ** Mouse **
  371. A mouse driver must be installed before TOSBOX runs. In most situations you
  372. don't need to worry about this. But if you find that the TOSBOX mouse
  373. pointer can be moved when running from Windows but not from DOS, you need
  374. to install a DOS-mode mouse driver. Consult the FAQ for instructions.
  375.  
  376. For better compatibility with certain unusual mouse drivers, TOSBOX no
  377. longer refuses to run when it cannot immediately detect a driver, though it
  378. does briefly display a warning message. You will only know for sure that
  379. there is a problem if the mouse pointer refuses to be moved.
  380.   ------------------------------------------------------------------------
  381.  
  382. ** Serial port **
  383. The ST serial port is emulated at the hardware level. It can be mapped to
  384. any of the four PC COMx: devices, at speeds up to 115200 baud.  Flow
  385. control is supported in hardware (RTS/CTS), as are the DCD, DTR and Ring
  386. Indicator lines and their associated interrupts.  Because Atari never quite
  387. got it right in TOS, proper use of RTS/CTS requires installation of a patch
  388. program in the AUTO folder; I've had good luck with SERIALFX.
  389.  
  390. Users in England, and nowhere else as far as I know, have reported
  391. difficulty establishing PPP and SLIP connections.  I acknowledge the
  392. problem but don't know where to begin fixing it, since it can't be
  393. reproduced here.  If anyone can give me more detailed information to help
  394. with that (or room and board and airline tickets), I'll see what I can do.
  395.   ------------------------------------------------------------------------
  396.  
  397. ** Parallel (printer) port **
  398. In the beta versions of TOSBOX, the parallel port was emulated at the
  399. hardware level only. That code is still in place, but from version 1.00
  400. onward, the GEMDOS and BIOS calls that speak to the parallel port do so
  401. directly, with the result that they are now almost as fast as writing to
  402. the hardware registers.
  403.  
  404. You may at first experience significant delays in printing because of the
  405. way Windows spools DOS printer output; if you don't like this behavior,
  406. there are three known solutions.
  407.  
  408. 1. When configuring TOSBOX, assign the virtual parallel port to the default
  409. system printer, (prn: flushed).  TOSBOX will flush and release the printer
  410. device whenever a short delay has elapsed since the last information was
  411. sent by your program.  Besides just giving you more reasonable printer
  412. response times, using prn instead of lptx for the ST parallel port has
  413. these advantages:
  414.  
  415.    * The TBC.ACC accessory allows you to also flush the printer manually,
  416.      in case you ever need to do that.
  417.    * On-demand opening and closing of the prn device means other processes
  418.      on your PC will be able to use it when necessary (for instance it is
  419.      possible to start a long printout in a PC application, then start
  420.      TOSBOX without causing a device conflict; when the first job is done,
  421.      TOSBOX will automatically have access to the printer).
  422.  
  423. 2. Or, modify your \WINDOWS\SYSTEM.INI file to contain these lines:
  424.  
  425.     [Network]
  426.     PrintBufTime=5
  427.  
  428.     [ifsmgr]
  429.     PrintBufTime=5
  430.  
  431. An easy way to edit this file is to select "Run..." from the W95/98 Start
  432. menu and type "SYSEDIT".  If the [Network] and [ifsmgr] groups do not exist
  433. in SYSTEM.INI, add them just after the [386Enh] section.  The parameter "5"
  434. here determines the idle time between automatic flushes of the Windows
  435. print queue. Values between 1 and 10 may be desirable; the default is much
  436. higher, reportedly 45 seconds.  Windows typically treats DOS programs as
  437. batch jobs, so such a long delay is assumed to help such programs get done
  438. with their work and exit more quickly.
  439.  
  440. 3. Or, in Windows 95/98, open your "Printers" folder from the control
  441. panel, right-click on the printer you are using, select "properties", then
  442. "details", then "spool settings", then "print directly to printer."  But
  443. this means you lose the capability of spooling print data within Windows,
  444. which is likely to be undesirable, depending on what sort of printer you
  445. have and what kind of work you do.
  446.   ------------------------------------------------------------------------
  447.  
  448. ** Sound **
  449. There is limited sound support.  Only the predefined system sounds are
  450. emulated (the error bell and keyclick). You may configure TOSBOX so that
  451. those sounds are disabled, or played through the PC speaker, or played
  452. through a Soundblaster-compatible card.
  453.   ------------------------------------------------------------------------
  454.  
  455. ** Missing features **
  456. There are no plans to support sound or joysticks; get PaCifiST if you need
  457. those. The IKBD command $16 (send single joystick report) always returns
  458. codes meaning "joysticks centered, fire buttons not pressed".
  459.  
  460. General sound chip emulation may possibly be included someday, if there is
  461. enough interest and I find enough time.
  462.  
  463. Also there are no plans to emulate the MIDI ports, a 68030 CPU, or any
  464. machine-specific hardware.
  465.   ------------------------------------------------------------------------
  466.  
  467. ** Detecting the presence of TOSBOX **
  468. The approved method, a la PaCifiST, is to call Vsync() with D6 = D7 =
  469. 'Emu?'($456D753F). On return, D6 will contain 'TBox' ($54426F78) and D7
  470. will contain the ASCII-encoded version number.
  471.  
  472. Programmers who don't use assembly can get the same information from ST
  473. memory locations $3f0 and $3f4, unless some application has thoughtlessly
  474. polluted that area.
  475.  
  476.   ------------------------------------------------------------------------
  477. ** The Four Disclaimers **
  478.  
  479.  
  480.   1. Use at your own risk. I am confident that the design of TOSBOX ensures
  481.      the safety of your PC's data.  Nonetheless, I specifically disclaim
  482.      any consequences of the use or misuse of this program.
  483.   2. All trademarks used in this document are recognized and acknowledged.
  484.      Although Atari is no longer with us, it is my understanding that its
  485.      copyrights and patents belong to JTS (or is it Hasbro, now?) and
  486.      remain legally in force.  I do not wish to condone or encourage
  487.      illegal copying of the Atari ST operating system.
  488.   3. Although Fiorello LaGuardia and Albert Einstein laughed and laughed
  489.      and laughed at the joke, their socks did not fall down.
  490.        (--Jack Ziegler)
  491.   4. There are no longer any "nag" messages in TOSBOX, but please remember
  492.      that it is a shareware product.  The low $15 price point was chosen
  493.      in the hope that most users would actually register, not just a few
  494.      wealthy or painfully conscience-bound souls.
  495.  
  496.   ------------------------------------------------------------------------
  497. ** Thanks to: **
  498.  
  499. All the users who have registered, or helped with debugging, or conveyed
  500. their encouragement;
  501.  
  502. Dan Wilga, for helping me read the entrails of GEMDOS and offering some
  503. welcome advice;
  504.  
  505. Frederic Gidouin, for writing PaCifiST and convincing me that a patient,
  506. mild-mannered guy without Micro$oftish arrogance can do this kind of thing
  507. after all;
  508.  
  509. Sam Vincent, for the SVAsync library, around which the serial emulation is
  510. built;
  511.  
  512. and DJ Delorie and Robert Hoehne, for their work on DJGPP and RHIDE
  513. respectively.
  514.  
  515.